home *** CD-ROM | disk | FTP | other *** search
/ Wonky Flux Batch 2019 02 / Wonky_Flux_Batch_2019-02.zip / Wonky Flux Batch 2019-02 / 002 - AE ProDOS Time Utilities - Timemaster II H.O Version 3.5 Apple Pascal.dsk / ASSMNEW.TEXT.txt next >
Text File  |  2019-02-16  |  4KB  |  112 lines

  1. ;---------------------------------------
  2. ;WRITTEN BY STEVEN MALECHEK FOR 
  3. ;APPLIED ENGINEERING ON JAN 25, 1985
  4. ;Copyright (c) 1985, 1986 Applied Engineering
  5. ;---------------------------------------
  6. ;MACRO POPS 16 BIT ARGUMENT
  7. ;
  8.         .MACRO  POP
  9.         PLA
  10.         STA     %1
  11.         PLA 
  12.         STA     %1+1
  13.         .ENDM
  14.  
  15. ;---------------------------------------
  16. ;MACRO PUSH 16 BIT ARGUMENT
  17. ;
  18.         .MACRO  PUSH
  19.         LDA     %1+1
  20.         PHA
  21.         LDA     %1
  22.         PHA
  23.         .ENDM
  24.  
  25. ;---------------------------------------
  26. ;MACRO DUMPS 2 WORDS OF ZEROS
  27. ;
  28.         .MACRO  DUMP
  29.         PLA
  30.         PLA
  31.         PLA
  32.         PLA
  33.         .ENDM
  34.         
  35. ;---------------------------------------
  36. ;FUNCTION TO READ CLOCK
  37. ;
  38.         .FUNC   READCLOCK,1
  39.  
  40. RETURN  .EQU    0               ;STORE RETURN ADDRESS AT $00
  41. HOLD    .EQU    10              ;DATA TO HOLD CLOCK
  42. RELEASE .EQU    2F              ;DATA TO RELEASE CLOCK
  43. CONTRG  .EQU    04              ;CONTROL REGISTER DATA INITALATION
  44. PORTA   .EQU    0C080           ;PORT A BASE ADDRESS
  45. CRTA    .EQU    0C081           ;CONTROL REGISTER A BASE ADDRESS
  46. PORTB   .EQU    0C082           ;PORT B BASE ADDRESS
  47. CRTB    .EQU    0C083           ;CONTROL REGISTER A BASE ADDRESS
  48.         .PUBLIC SLOT            ;GET SLOT FOR PASCAL PROGRAM
  49.  
  50.         POP     RETURN
  51.         DUMP                    ;GET RID OF TRASH
  52.         PLA                     ;GET LSB OF SELECT
  53.         AND     #0F             ;MASK OFF UPPER NIBBLE
  54.         TAY                     ;PUT IN Y FOR INDEXING
  55.         LDX     SLOT
  56.         LDA     #00
  57.         STA     CRTA,X          ;CLEAR CONTROL REG A
  58.         STA     CRTB,X          ;SAME
  59.         STA     PORTA,X         ;SET PORT A FOR INPUT
  60.         LDA     #0FF
  61.         STA     PORTB,X         ;SET PORT B FOR OUTPUT
  62.         LDA     #CONTRG         ;SET UP FOR DATA EXCHANGE
  63.         STA     CRTA,X
  64.         STA     CRTB,X
  65.         JSR     READCL          ;READ DIGIT
  66.         CPY     #00             ;CHECK FOR DAY DIGIT
  67.         BEQ     FINISH          ;IF SO EXIT (DAY IS ONLY ONE DIGIT)
  68.         CLC
  69.         STA     TEMP            ;SAVE A FOR MULTIPLY
  70.         ASL     A               ;MULTIPLY A BY TEN
  71.         ASL     A               ;TO GET IT IN TENS PLACE
  72.         ADC     TEMP
  73.         ASL     A
  74.         STA     TEMP
  75.         INY                     ;GET ONES DIGIT
  76.         JSR     READCL
  77.         CLC
  78.         ADC     TEMP            ;ADD TO TENS DIGIT
  79. FINISH  PHA                     ;PUT LSB ON STACK
  80.         PUSH    RETURN          ;RESTORE RETURN ADDRESS
  81.         RTS                     ;RETURN TO PASCAL
  82. READCL  LDA     #HOLD           ;HOLD CURRENT TIME FOR READING
  83.         STA     PORTB,X         ;START READING THE CLOCK
  84.         LDA     TABLE,Y         ;GET CODE FOR DIGIT
  85.         STA     PORTB,X         ;SEND CODE
  86.         NOP                     ;WAIT
  87.         NOP
  88.         LDA     PORTA,X         ;GET DATA
  89.         PHA
  90.         LDA     #RELEASE        ;RELEASE CLOCK FROM HOLD
  91.         STA     PORTB,X
  92.         PLA
  93.         CPY     #03             ;CHECK IF IT READED DATE 10 PLACE
  94.         BEQ     MASK            ;IF SO CLEAR UP
  95.         CPY     #07             ;CHECK IF IT READED HOURS 10 PLACE
  96.         BNE     NOMASK          ;IF NOT DON'T MASK
  97. MASK    AND     #03             ;SAVE ONLY BITS 0 AND 1
  98. NOMASK  AND     #0F             ;REMOVE HIGH BITS
  99.         RTS
  100.         
  101. TABLE   .BYTE   36              ;CODE FOR DAY OF WEEK
  102.         .WORD   393A            ;MONTH
  103.         .WORD   3738            ;DATE
  104.         .WORD   3B3C            ;YEAR
  105.         .WORD   3435            ;HOURS
  106.         .WORD   3233            ;MINUTES
  107.         .WORD   3031            ;SECONDS
  108. TEMP    .BYTE   00              ;TEMPORARY STORAGE FOR MULT
  109.         
  110.         .END                    ;END OF ASSEMBLY
  111.  
  112.